<?php
/**
 * HTTP处理类
 * @author chengtao05011633@gmail.com
 * @veasion 0.0.1
 */
class CtHttp {
	/**
	 * 通过http方式上传文件
	 * @param $url 文件上传路径
	 * @param $files 文件的绝对路径
	 * @param $data 通过get上传的键值对
	 */
	static public function upload($url = null,$files = array(),$data = array()){
		if($url == '' || !is_array($files) || !is_array($data)){
			return false;
		}
		$ch=curl_init($url);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		url_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POST, 1);
		foreach($files as $key=> $file){
			$data[$key] = '@'.$file;
		}
		curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
		$result =curl_exec($ch);
		curl_close($ch);
		return  $result;
	}
	/**
	 * 下载文件
	 * 使用fopen方式下载，因为如果不适用这种方式下载内存不够用
	 * @param $url  下载地址
	 * @param $file 下载文件保存路径
	 * @return boolean
	 */
	static public function download($url,$file){
		file_put_contents($file,file_get_contents($url));
		/*
		$buffer_size  =  1024*1024*8; //1M
		if(file_exists($file)){
			unlink($file);
		}
		$headers = get_headers($url);
		if($headers[0] == 'HTTP/1.1 200 OK'){
			$url_res = fopen($url, "rb");
			if ($url_res) {
				$file_res = fopen($file, "wb");
				$i=0;
				if ($file_res){

					while (!feof($url_res)) {
						
						$buffer_content = fread($url_res,$buffer_size);
						echo $i++."---". strlen($buffer_content)."\n" ;
						fwrite($file_res,$buffer_content ,$buffer_size);
					}
				}
			}
			if ($url_res) {
				fclose($url_res);
			}
		    if ($file_res) {
				fclose($file_res);
		    }
		}
		exit;
		*/
		return file_exists($file);
	}
}
?>